import { CommandBase } from "./base"
import Insert from "../insert";

@Insert
export class CommandVariable extends CommandBase {
    constructor() {
        super()
        this.name = "变量"
        this.tags.push("var")
        this.detail = "变量[$变量名$,变量值]"
        this.insert = "变量[$${1:变量名}$,${2:变量值}]"
        this.docs = "声明一个变量."
    }
}

@Insert
export class CommandFlag extends CommandBase {
    constructor() {
        super()
        this.name = "标识"
        this.tags.push("块", "方法", "逻辑块", "fn")
        this.detail = "标识[$逻辑块$]"
        this.insert = "标识[${1:逻辑块}]"
        this.docs = "创建一个逻辑块."
    }
}

@Insert
export class CommandSkip extends CommandBase {
    constructor() {
        super()
        this.name = "跳转"
        this.tags.push("逻辑")
        this.detail = "跳转[$逻辑块$]"
        this.insert = "跳转[${1:逻辑块}]"
        this.docs = "从当前行跳转到目标逻辑块所在行."
    }
}

@Insert 
export class CommandWait extends CommandBase {
    constructor() {
        super()
        this.name = "等待"
        this.tags.push("休眠", "sleep")
        this.detail = "等待[$毫秒$]"
        this.insert = "等待[${1:1000}]"
        this.docs = "休眠秒数"
    }
}

@Insert 
export class CommandWaitBattle extends CommandBase {
    constructor() {
        super()
        this.name = "等待战斗"
        this.tags.push("休眠", "sleep", "战斗")
        this.detail = "等待战斗[$毫秒$]"
        this.insert = "等待战斗[${1:500}]"
        this.docs = "每隔一段时间检测角色是否处于战斗中"
    }
}

@Insert 
export class CommandStartBattle extends CommandBase {
    constructor() {
        super()
        this.name = "进入战斗"
        this.tags.push("战斗")
        this.detail = "进入战斗[$怪物$]"
        this.insert = "进入战斗[${1:怪物}]"
        this.docs = "直接进入怪物战斗"
    }
}

@Insert 
export class CommandKeyDown extends CommandBase {
    constructor() {
        super()
        this.name = "按键"
        this.tags.push("快捷键")
        this.detail = "按键[$键位$]"
        this.insert = "按键[${1:键位}]"
        this.docs = ""
    }
}

@Insert 
export class CommandFlySkill extends CommandBase {
    constructor() {
        super()
        this.name = "起飞"
        this.tags.push("按键", "快捷键")
        this.detail = "起飞[$键位$]"
        this.insert = "起飞[${1:键位}]"
        this.docs = ""
    }
}

@Insert 
export class CommandFlySkillDown extends CommandBase {
    constructor() {
        super()
        this.name = "降落"
        this.tags.push("按键", "快捷键")
        this.detail = "降落[$键位$]"
        this.insert = "降落[${1:键位}]"
        this.docs = ""
    }
}

@Insert 
export class CommandUseFlyFlag extends CommandBase {
    constructor() {
        super()
        this.name = "使用飞行旗"
        this.tags.push("飞行旗", "旗子")
        this.detail = "使用飞行旗[$旗子编号$,$目标$]"
        this.insert = "使用飞行旗[${1:1},${2:目标}]"
        this.docs = "例子:\n1.使用飞行旗[1,京城]\n2.使用飞行旗[2,位置1]"
    }
}

@Insert 
export class CommandChangeChannelSpeak extends CommandBase {
    constructor() {
        super()
        this.name = "切换频道"
        this.tags.push("喊话", "频道")
        this.detail = "喊话[切换频道,世界]"
        this.insert = "喊话[切换频道,${1:世界}]"
        this.docs = "仅支持当前 队伍 世界 喇叭"
    }
}

@Insert 
export class CommandSpeak extends CommandBase {
    constructor() {
        super()
        this.name = "喊话"
        this.detail = "喊话[$消息$]"
        this.insert = "喊话[${1:消息}]"
        this.docs = ""
    }
}

@Insert 
export class CommandMessage extends CommandBase {
    constructor() {
        super()
        this.name = "消息"
        this.detail = "消息[$消息$]"
        this.insert = "消息[${1:消息}]"
        this.docs = ""
    }
}


@Insert 
export class CommandRoleAddAttribute extends CommandBase {
    constructor() {
        super()
        this.name = "角色加点"
        this.tags.push("加点")
        this.detail = "角色[加点,体质,-1]"
        this.insert = "角色[加点,${1:体质},${2:-1}]"
        this.docs = "-1代表全部"
    }
}

@Insert 
export class CommandRoleLevel extends CommandBase {
    constructor() {
        super()
        this.name = "角色升级"
        this.tags.push("升级")
        this.detail = "角色[升级]"
        this.insert = "角色[升级]"
        this.docs = ""
    }
}

@Insert 
export class CommandRoleRequestTrans extends CommandBase {
    constructor() {
        super()
        this.name = "请求交易"
        this.tags.push("交易")
        this.detail = "交易[请求交易,$角色$]"
        this.insert = "交易[请求交易,${1:角色}]"
        this.docs = ""
    }
}

@Insert 
export class CommandRoleTransLock extends CommandBase {
    constructor() {
        super()
        this.name = "交易锁定"
        this.detail = "交易[锁定]"
        this.insert = "交易[锁定]"
        this.docs = ""
    }
}

@Insert 
export class CommandRoleTransSubmit extends CommandBase {
    constructor() {
        super()
        this.name = "交易"
        this.detail = "交易[交易]"
        this.insert = "交易[交易]"
        this.docs = ""
    }
}

@Insert 
export class CommandRoleTransAddPet extends CommandBase {
    constructor() {
        super()
        this.name = "交易宠物上架"
        this.tags.push("宠物")
        this.detail = "交易[宠物上架,$下标$]"
        this.insert = "交易[宠物上架,${1:0}]"
        this.docs = "下标代表第几个宠物上架"
    }
}

@Insert 
export class CommandRoleTransAddTargetPet extends CommandBase {
    constructor() {
        super()
        this.name = "交易指定宠物上架"
        this.tags.push("宠物")
        this.detail = "交易[宠物上架,$宠物$,$下标$]"
        this.insert = "交易[宠物上架,$宠物$,${1:0}]"
        this.docs = "某个名字的第几个宠物上架"
    }
}

@Insert 
export class CommandRoleSkillStudy extends CommandBase {
    constructor() {
        super()
        this.name = "学习技能(名字)"
        this.tags.push("技能")
        this.detail = "技能[学习技能,$技能$]"
        this.insert = "技能[学习技能,${1:技能}]"
        this.docs = ""
    }
}

@Insert 
export class CommandRoleSkillStudyIndex extends CommandBase {
    constructor() {
        super()
        this.name = "学习技能(下标)"
        this.tags.push("技能")
        this.detail = "技能[学习技能,$下标$]"
        this.insert = "技能[学习技能,${1:下标}]"
        this.docs = ""
    }
}

@Insert 
export class CommandRoleSkillStudyMode extends CommandBase {
    constructor() {
        super()
        this.name = "技能学习模式"
        this.tags.push("技能","模式")
        this.detail = "技能[银两学习,1]"
        this.insert = "技能[银两学习,1]"
        this.docs = "状态枚举:\n1.开启\n0.关闭"
    }
}

@Insert 
export class CommandHallowsStrengthen extends CommandBase {
    constructor() {
        super()
        this.name = "圣器强化"
        this.tags.push("强化","缚灵")
        this.detail = "圣器[缚灵,$圣器名称$]"
        this.insert = "圣器[缚灵,${1:名字}]"
        this.docs = "天/地/玄/黄级乾圣器  天/地/玄/黄级坤圣器"
    }
}

@Insert 
export class CommandHallowsUse extends CommandBase {
    constructor() {
        super()
        this.name = "圣器穿戴"
        this.tags.push("穿戴")
        this.detail = "圣器[穿戴,$圣器名称$]"
        this.insert = "圣器[穿戴,${1:名字}]"
        this.docs = "天/地/玄/黄级乾圣器  天/地/玄/黄级坤圣器"
    }
}

@Insert 
export class CommandHallowsUnderstand extends CommandBase {
    constructor() {
        super()
        this.name = "圣器领悟"
        this.tags.push("领悟")
        this.detail = "圣器[领悟,$圣器名称$]"
        this.insert = "圣器[领悟,${1:名字}]"
        this.docs = "天/地/玄/黄级乾圣器  天/地/玄/黄级坤圣器"
    }
}

@Insert 
export class CommandHallowsUnload extends CommandBase {
    constructor() {
        super()
        this.name = "圣器卸下"
        this.tags.push("卸下")
        this.detail = "圣器[卸下,$圣器名称$]"
        this.insert = "圣器[卸下,${1:名字}]"
        this.docs = "天/地/玄/黄级乾圣器  天/地/玄/黄级坤圣器"
    }
}

@Insert 
export class CommandHallowsDisassemble extends CommandBase {
    constructor() {
        super()
        this.name = "圣器碎灵"
        this.tags.push("碎灵", "分解")
        this.detail = "圣器[碎灵,$圣器名称$]"
        this.insert = "圣器[碎灵,${1:名字}]"
        this.docs = "天/地/玄/黄级乾圣器  天/地/玄/黄级坤圣器"
    }
}

@Insert 
export class CommandTimerCreate extends CommandBase {
    constructor() {
        super()
        this.name = "定义计数器"
        this.tags.push("计数器")
        this.detail = "计数器[定义,$名字$,0]"
        this.insert = "计数器[定义,${1:名字},${1:0}]"
        this.docs = ""
    }
}

@Insert 
export class CommandTimerInc extends CommandBase {
    constructor() {
        super()
        this.name = "计数器自增"
        this.tags.push("自增")
        this.detail = "计数器[自增,$名字$]"
        this.insert = "计数器[自增,${1:名字}]"
        this.docs = ""
    }
}

@Insert 
export class CommandLetterSend extends CommandBase {
    constructor() {
        super()
        this.name = "寄信"
        this.tags.push("邮件", "邮箱", "信件", "邮寄")
        this.detail = "寄信[$ID$,标题,内容,物品,钱]"
        this.insert = "寄信[${1:ID},${2:标题},${3:内容},${4:道具},${5:银两}]"
        this.docs = "例子:\n寄信[1111111,试试啊,没有内容,神诏*,200]"
    }
}

@Insert 
export class CommandLetterGet extends CommandBase {
    constructor() {
        super()
        this.name = "收信"
        this.tags.push("邮件", "邮箱", "信件", "邮寄")
        this.detail = "寄信[收信]"
        this.insert = "寄信[收信]"
        this.docs = ""
    }
}

@Insert 
export class CommandConfigCheckBox extends CommandBase {
    constructor() {
        super()
        this.name = "配置复选框"
        this.tags.push("复选框", "多选框", "checkbox")
        this.detail = "配置[复选框,$组件名称$,0]"
        this.insert = "配置[复选框,${1:名字},${2:0}]"
        this.docs = "状态枚举:\n1:开启\n0:关闭"
    }
}

@Insert 
export class CommandConfigGroupCheckBox extends CommandBase {
    constructor() {
        super()
        this.name = "配置组复选框"
        this.tags.push("复选框", "多选框", "checkbox")
        this.detail = "配置[组复选框,$组件名称$,0]"
        this.insert = "配置[组复选框,${1:名字},${2:0}]"
        this.docs = "状态枚举:\n1:开启\n0:关闭"
    }
}

@Insert 
export class CommandConfigRichText extends CommandBase {
    constructor() {
        super()
        this.name = "配置富文本框"
        this.tags.push("富文本框", "richtext")
        this.detail = "配置[组复选框,$组件名称$,$内容$]"
        this.insert = "配置[组复选框,${1:名字},${2:内容}]"
        this.docs = ""
    }
}

@Insert 
export class CommandConfigText extends CommandBase {
    constructor() {
        super()
        this.name = "配置文本框"
        this.tags.push("文本框", "text")
        this.detail = "配置[文本框,$组件名称$,$内容$]"
        this.insert = "配置[文本框,${1:名字},${2:内容}]"
        this.docs = ""
    }
}

@Insert 
export class CommandConfigTableClear extends CommandBase {
    constructor() {
        super()
        this.name = "清空配置表格"
        this.tags.push("配置", "表格", "清空", "table")
        this.detail = "配置[表格,$组件名称$,清空]"
        this.insert = "配置[表格,${1:名字},清空]"
        this.docs = "修改表格内容前先清空"
    }
}

@Insert 
export class CommandConfigTable extends CommandBase {
    constructor() {
        super()
        this.name = "配置表格"
        this.tags.push("配置", "表格", "table")
        this.detail = "配置[表格,$组件名称$,$内容$]"
        this.insert = "配置[表格,${1:名字},${2:内容}]"
        this.docs = "例子:\n配置[表格,人物战斗技能,敌方数量|小于|4|技能攻击|天降大任|]"
    }
}